Skip to content

feat(tooling): opt-in phone-testing tunnel for /test-pr - #47

Merged
robercano-ghbot merged 1 commit into
mainfrom
feat/phone-testing-tunnel
Jul 5, 2026
Merged

feat(tooling): opt-in phone-testing tunnel for /test-pr#47
robercano-ghbot merged 1 commit into
mainfrom
feat/phone-testing-tunnel

Conversation

@robercano-ghbot

Copy link
Copy Markdown
Collaborator

Mirrors reDeploy's phone-testing tooling (reDeploy PR #92 / issue #91) into the orchestrator template so /test-pr gains an opt-in --phone mode across projects.

What

  • .claude/scripts/prepare-pr.sh--phone / PHONE=1 opt-in prints humanTest.launchPhone (start the app + a public tunnel) instead of humanTest.launch, plus a caveat block. Default path byte-identical. Also symlinks the main checkout's .env into the detached worktree when present (generic — apps that read a repo-root .env at runtime).
  • .claude/commands/test-pr.md — documents --phone and its public-exposure caveats. Preserves the template's ${CLAUDE_PLUGIN_ROOT:-.claude} path convention (NOT hardcoded .claude).
  • .claude/gates.json — adds a documented humanTest block (prepare/launch/launchPhone/worktreeDir). The launchPhone key was already read by the script but undocumented here.
  • docs/USAGE.md — "Testing on a phone" section + a launchPhone example (cloudflared tunnel --url … --http-host-header localhost).

Why

Lets an owner iterate on a UI (touch/drag, small-screen) from a real phone browser instead of a desktop, by tunneling the existing dev server. Opt-in and attended: the tunnel is public while up (exposes the app + any proxied API using the worktree's .env creds) and ephemeral (Ctrl-C tears it all down).

Notes

  • Generic/portable only — no reDeploy-specific paths. humanTest.launchPhone stays empty in the template (projects fill it in).
  • bash -n clean; gates.json parses.

🤖 Generated with Claude Code

Mirror of reDeploy's phone-testing tooling into the template. Adds an
opt-in --phone mode to /test-pr that prints humanTest.launchPhone (start
the app + a public cloudflared quick tunnel) instead of humanTest.launch,
so a UI can be exercised from a real phone browser.

- prepare-pr.sh: --phone / PHONE=1 flag prints launchPhone + a caveat
  block; default path unchanged. Also symlinks the main checkout's .env
  into the detached worktree when present (generic, apps that read a
  repo-root .env at runtime).
- test-pr.md: documents --phone and its public-exposure caveats;
  preserves the ${CLAUDE_PLUGIN_ROOT:-.claude} path convention.
- gates.json: adds a documented humanTest block (prepare/launch/
  launchPhone/worktreeDir) — the launchPhone key was previously read by
  the script but undocumented here.
- docs/USAGE.md: 'Testing on a phone' section + launchPhone example.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193Wc7aqPQvNqVZjcndBaf6
@robercano-ghbot
robercano-ghbot merged commit 5894140 into main Jul 5, 2026
9 checks passed
@robercano-ghbot
robercano-ghbot deleted the feat/phone-testing-tunnel branch July 5, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants